home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / idl / bonobo-2.0 / Bonobo_Zoomable.idl < prev    next >
Text File  |  2006-01-09  |  4KB  |  126 lines

  1. /*
  2.  * bonobo-zoomable.idl: Bonobo::Zoomable - a zoomable interface for Controls.
  3.  *
  4.  *  Copyright (C) 2000 Eazel, Inc.
  5.  *                2000 SuSE GmbH.
  6.  *
  7.  *  This library is free software; you can redistribute it and/or
  8.  *  modify it under the terms of the GNU Lesser General Public
  9.  *  License as published by the Free Software Foundation; either
  10.  *  version 2 of the License, or (at your option) any later version.
  11.  *
  12.  *  This library is distributed in the hope that it will be useful,
  13.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  *  Lesser General Public License for more details.
  16.  *
  17.  *  You should have received a copy of the GNU Lesser General Public
  18.  *  License along with this library; if not, write to the Free
  19.  *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  *
  21.  *  Authors: Maciej Stachowiak <mjs@eazel.com>
  22.  *           Martin Baulig <baulig@suse.de>
  23.  */
  24.  
  25. #ifndef BONOBO_ZOOMABLE_IDL
  26. #define BONOBO_ZOOMABLE_IDL
  27.  
  28. #include "Bonobo_Unknown.idl"
  29.  
  30. module Bonobo {
  31.  
  32. typedef float ZoomLevel;
  33. typedef string ZoomLevelName;
  34.  
  35. typedef sequence<ZoomLevel> ZoomLevelList;
  36. typedef sequence<ZoomLevelName> ZoomLevelNameList;
  37.     
  38. /* A zoomable has the responsibility to look for this
  39.  * interface on its Bonobo control frame and call
  40.  * onLevelChanged whenever it changes the zoom level (on
  41.  * its own or due to calls from the zoomable interface).
  42. */
  43. interface ZoomableFrame : ::Bonobo::Unknown {
  44.     /**
  45.      * onLevelChanged:
  46.      * @zoom_level: The new zoom level.
  47.      *
  48.      * Informs the ZoomableFrame that the zoom level has changed.
  49.      * The Zoomable should call this each time it successfully
  50.      * completed a zooming operation.
  51.      */
  52.     oneway void onLevelChanged (in float zoom_level);
  53.  
  54.     /**
  55.      * onParametersChanged:
  56.      *
  57.      * Informs the ZoomableFrame that some of the zoom parameters
  58.      * such as min/max zoom level has changed, for instance after
  59.      * loading a new file into the component.
  60.      */
  61.     oneway void onParametersChanged ();
  62.  
  63.     void unImplemented1 ();
  64.     void unImplemented2 ();
  65.     void unImplemented3 ();
  66.     void unImplemented4 ();
  67. };
  68.  
  69. interface Zoomable : Bonobo::Unknown {
  70.     /*
  71.      * This is a read-only value and indicates the actual current
  72.      * zoom level of the component. It is changed by the component
  73.      * after successfully completing a zooming operation before
  74.      * calling the `onLevelChanged' method on its ZoomableFrame.
  75.      */
  76.     readonly attribute float level;
  77.  
  78.     /* Information about the type of zooming that's supported. */
  79.     readonly attribute float minLevel;
  80.     readonly attribute float maxLevel;
  81.     readonly attribute boolean hasMinLevel;
  82.     readonly attribute boolean hasMaxLevel;
  83.     readonly attribute boolean isContinuous;
  84.     readonly attribute ZoomLevelList preferredLevels;
  85.     readonly attribute ZoomLevelNameList preferredLevelNames;
  86.         
  87.     /*
  88.      * High level operations.
  89.      * These can cause a change in the zoom level.
  90.      * The zoomable itself must decide what the concepts
  91.      * "one level in", "one level out", and "to fit" mean.
  92.      */
  93.     oneway void zoomIn ();
  94.     oneway void zoomOut ();
  95.     oneway void zoomFit ();
  96.     oneway void zoomDefault ();
  97.  
  98.     /**
  99.      * setLevel:
  100.      * @zoom_level: The new zoom level.
  101.      *
  102.      * Tells the component to zoom to @zoom_level.
  103.      *
  104.      * If the component only supports fixed zoom levels,
  105.      * then the actual zoom level will be set to the
  106.      * closest possible value of @zoom_level.
  107.      */
  108.     void setLevel (in float zoom_level);
  109.  
  110.     /**
  111.      * setFrame:
  112.      * @zoomable_frame: A Bonobo_ZoomableFrame.
  113.      *
  114.      * Gives the Zoomable a handle to its ZoomableFrame.
  115.      */
  116.     void setFrame (in ZoomableFrame zoomable_frame);
  117.  
  118.     void unImplemented1 ();
  119.     void unImplemented2 ();
  120.     void unImplemented3 ();
  121.     void unImplemented4 ();
  122. };
  123. };
  124.  
  125. #endif /* BONOBO_ZOOMABLE_IDL */
  126.